5013515c8e27b28d75d8057fe32d94a54fed270b,org.metaborg.runtime.task/src/main/java/org/metaborg/runtime/task/evaluation/TaskEvaluationQueue.java,TaskEvaluationQueue,evaluate,#Set#IContext#Strategy#Strategy#Strategy#,173

Before Change


								done = false;
								break;
							}
						} else if(task.failed() || !task.results().hasResults()) {
							done = false;
							break;
						}

						// TODO: creating two sets and taking the symmetric difference is VERY expensive?
						final Multiset<IStrategoTerm> oldValues = HashMultiset.create(values.get(taskID));
						final Multiset<IStrategoTerm> newValues = HashMultiset.create(task.results().results());
						final Multiset<IStrategoTerm> diff1 = Multisets.difference(newValues, oldValues);
						final Multiset<IStrategoTerm> diff2 = Multisets.difference(oldValues, newValues);

After Change



						// TODO: creating two sets and taking the symmetric difference is VERY expensive?
						final Multiset<IStrategoTerm> oldValues = HashMultiset.create(values.get(taskID));
						final Multiset<IStrategoTerm> newValues = HashMultiset.create(task.results());
						final Multiset<IStrategoTerm> diff1 = Multisets.difference(newValues, oldValues);
						final Multiset<IStrategoTerm> diff2 = Multisets.difference(oldValues, newValues);